#ifndef QLSTHEMESMANAGER_H
#define QLSTHEMESMANAGER_H

#include <QObject>
#include <QMutex>
#include <QString>
#include <QStringList>

#include "qls_themes_manager_global.h"

/* 主题管理系统 */
class QLS_THEMES_MANAGER_EXPORT QLsThemesManager : public QObject
{
    Q_OBJECT
public:
    explicit QLsThemesManager(QObject *parent = nullptr);

    /* 刷新本地主题 */
    void RefreshLocalThemes();

    /* 加载主题
     * 默认主题文件名为 themeName.qss
     */
    bool LoadTheme(QWidget *widget, const QString &themeName);

    /* 获取可用主题列表 */
    QStringList GetThemes() const;

    /* 获取当前主题 */
    QString GetCurrentTheme() const;

signals:
    /* 样式切换的信号，支持子插件样式跟随主系统切换 */
    void sigChangeTheme(QString);

private:
    QStringList m_themesList; /* 可用主题列表 */
    QString m_curTheme;       /* 当前主题 */
};

#endif // QLSTHEMESMANAGER_H
